Lecture 2 - IP Addressing
مقدمة
- الـ IP Address (Internet Protocol Address) هو label رقمي بيتد لكل جهاز متصل بالشبكة عشان يتعرف عليه
- زي عنوان البيت بالظبط — البيانات عشان توصللك محتاجة تعرف عنوانك
- من غيره مفيش تواصل بين الأجهزة على الشبكة
IP Address Structure
- الـ IP address هو 32-bit number مقسّم لـ two-level hierarchical:
- ا Network Portion: بيعرّف الشبكة اللي الجهاز تابع ليها
- ا Host Portion: بيعرّف الجهاز نفسه جوه الشبكة
- الـ 32 bits متقسمين لـ 4 octets (كل octet = 8 bits)
- كل octet قيمته من 0 لـ 255
- مكتوب بـ dotted decimal notation: مثال
192.168.1.10
مثال
- ا IP:
172.16.4.20 - ا Network Portion:
172.16— Host Portion:4.20 - ا IP:
172.16.4.32 - ا Network Portion:
172.16— Host Portion:4.32 - الاتنين على نفس الـ logical network لأن الـ network portion متطابق
Binary to Decimal Conversion
كل bit في الـ octet ليه قيمة:
| ا 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|
من Binary لـ Decimal:
00001010 = 8 + 2 = 10
00010111 = 16 + 4 + 2 + 1 = 23
10101010 = 128 + 32 + 8 + 2 = 170
من Decimal لـ Binary:
Note
امثله عشان تتدرب:
00001010 00000001 00010111 00010011←10.1.23.1910101010 01000001 00010010 10101100←170.65.18.172
IPv4 vs IPv6
| الخاصية | IPv4 | IPv6 |
|---|---|---|
| ** Bit Length** | 32 bits | 128 bits |
| عدد العناوين | ~4.3 مليار | 340 undecillion (رقم ضخم مش هيخلص) |
| طريقة الكتابة | Decimal, 4 numbers (0–255) | Hexadecimal, 8 groups (0–FFFF) |
| مثال | 192.168.1.1 |
2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
| الاستخدام | Legacy networks, معظم أجهزة الإنترنت | Modern networks, IoT, future-proofing |
Public vs Private IP
| ا Public IP | ا Private IP |
|---|---|
| بيوصل للإنترنت مباشرة | بيستخدم جوه الشبكة المحلية (LAN) بس |
| Unique على مستوى العالم | مكرر في شبكات محلية كتير — مش routable على الإنترنت |
| بياخده من ISP | بياخده من الـ router (DHCP) |
Private IP ranges:
10.0.0.0—10.255.255.255-> Class A172.16.0.0—172.31.255.255-> Class B192.168.0.0—192.168.255.255-> Class C
Static vs Dynamic IP
| ا Static IP | ا Dynamic IP |
|---|---|
| ثابت — مش بيتغير | متغير — بيتغير مع الوقت |
| مناسب للسيرفرات والأجهزة الثابتة | مناسب للأجهزة العادية (البيت، الموبايل) |
| بتعيّنه يدوي | بياخده تلقائي من DHCP |
Subnet Mask
- رقم بيقسم الـ IP address لـ Network Part و Host Part
- الـ bits اللي فيها
1= Network Part - الـ bits اللي فيها
0= Host Part
مثال
IP: 192.168.1.10
Subnet: 255.255.255.0
Binary IP: 11000000.10101000.00000001.00001010
Binary Sub: 11111111.11111111.11111111.00000000
- Network = 192.168.1 (أول 3 octets)
- Host = 10 (آخر octet)
- الأجهزة الممكنة في الشبكة دي: 192.168.1.1 لـ 192.168.1.254
- كل
255في الـ subnet mask = جزء من الـ network - كل
0= جزء من الـ host
IPv4 Classes (Classful Addressing)
| الـ Class | ا First Octet Range | استخدامه |
|---|---|---|
| Class A | 1 – 126 | شبكات ضخمة (شركات كبيرة، جامعات) |
| Class B | 128 – 191 | شركات متوسطة/كبيرة |
| Class C | 192 – 223 | شركات صغيرة، منازل، مكاتب |
| Class D | 224 – 239 | Multicasting (streaming, routing) |
| Class E | 240 – 255 | Experimental / عسكري / أبحاث |
توزيع Network vs Host حسب الـ Class:
| الـ Class | ا Network | ا Host |
|---|---|---|
| A | أول octet | تالت octets |
| B | أول 2 octets | آخر 2 octets |
| C | أول 3 octets | آخر octet |
ملاحظات
- ا
127.x.x.xمحجوزة للـ Loopback (troubleshooting) - لو أول octet = 127 → ده localhost عشان تختبر الشبكة على جهازك
أمثلة عملية — تحديد الـ Class وتقسيم Network/Host
المثال 1: 10000001 00001011 00001011 11101111
- Decimal:
129.11.11.239 - أول octet ( رقم 129 ) -> موجود بين (128–191) يعني Class B
- يبقي الـ Network: أول 2 octets الي هما
129.11 - والـ Host: آخر 2 octets الي هما
11.239
المثال 2: 11000001 10000011 00011011 11111111
- Decimal:
193.131.27.255 - أول octet ( رقم 193 ) -> موجود بين (192–223) يعني Class C
- يبقي الـ Network: أول 3 octets الي هما
193.131.27 - والـ Host: آخر octet الي هو
255
أخطاء شائعة في IPv4
111.56.045.78-> ممنوع الـ leading zeroes (045)221.34.7.8.20-> أكتر من 4 octets75.45.301.14-> كل octet ≤ 25511100010.23.14.67-> ممنوع خلط binary و decimal
حساب عدد العناوين في Range
1. إزاي تعرف عدد العناوين لما يكون عندك أول وآخر IP؟
- الفكرة: الـ IP address هو رقم في Base 256 — يعني كل octet عبارة عن رقم من 0 لـ 255.
مثال: 146.102.29.0 ← 146.102.32.255
الخطوات:
- بنطرح أول IP من آخر IP octet-by-octet من اليمين لـ الشمال (زي الطرح العادي بالظبط):
146 . 102 . 32 . 255
- 146 . 102 . 29 . 0
─────────────────────
0 . 0 . 3 . 255
الناتج طلع كده ازاي ؟ لأن 255 - 0 = 255، و 32 - 29 = 3.
دلوقتي عندنا الناتج = 0.0.3.255.
- نحوله لـ decimal عشان نعرف قيمته:
(0 × 256³) + (0 × 256²) + (3 × 256¹) + (255 × 256⁰)
= 0 + 0 + 768 + 255
= 1023
- او بمجرد النظر هنلاقي ان كل ما نزود ان كل ما نزود 255 في رابع octet تالت octet بيزيد واحد يعني
0.0.2.0 + 0.0.0.256 = 0.0.3.0يبقي(256*3) + 255 = 1023(لو مفهمتش اشتغل بالطريقة الي فاتت )
2. إزاي تعرف آخر IP لما يكون عندك أول IP وعدد العناوين؟
مثال: أول IP عباره عن 14.11.45.96 و عدد العناوين = 32
الخطوات:
لما عدد العناوين = 32، يبقى الفرق بين الأول والآخر = 32 - 1 = 31 يعني 0.0.0.31 .
دلوقتي اجمع الـ IP الأول مع الرقم ده octet-by-octet من اليمين:
14 . 11 . 45 . 96
+ 0 . 0 . 0 . 31
─────────────────────
14 . 11 . 45 . 127
ليه بقى 127؟ لأن 96 + 31 = 127. ولو كان الناتج أكبر من 255، كنا هنعمل carry للـ octet اللي قبله (زي الجمع العادي).
إذن آخر IP = 14.11.45.127
وده منطقي لأن الـ IPs هتكون من 96 لـ 127 = 32 عنوان بالضبط.
الخلاصة
- ا IP Address هو 32-bit hierarchical number — Network + Host
- ا Subnet Mask بيحدد مين network ومين host
- ا Classful addressing بتقسّم العناوين لـ A, B, C, D, E
- ا Public للإنترنت — Private للشبكة المحلية
- ا Static ثابت — Dynamic متغير عن طريق DHCP
- ا IPv6 جا عشان يحل مشكلة نقص العناوين في IPv4